Decryption condition addition device, cryptographic system, and decryption condition addition program

ABSTRACT

A decryption condition addition device ( 300 ) acquires an original ciphertext ct s  in which a secret distribution matrix M is set as information specifying a decryption condition and acquires an additional access structure S +  which is a restriction condition to restrict the decryption condition of the original ciphertext ct s . The decryption condition addition device ( 300 ) adds a row and a column which are indicated in the additional access structure S +  to the secret distribution matrix M set in the original ciphertext ct s , and thereby generates an updated ciphertext ct s , for which the decryption condition of the original ciphertext ct s  is restricted.

TECHNICAL FIELD

The present invention relates to a technique for restricting a decryption condition set in a ciphertext without decrypting the ciphertext.

BACKGROUND ART

Functional encryption and attribute-based encryption are public key encryption schemes according to which a set of users authorized to decrypt a ciphertext can be set in the ciphertext with a logical expression composed of OR, AND, and NOT. That is, functional encryption and attribute-based encryption are public key encryption schemes according to which a decryption condition of a ciphertext can be set in the ciphertext with a logical expression composed of OR, AND, and NOT. Patent Literature 1 describes a functional encryption scheme.

There is a technique called proxy re-encryption according to which a decryption condition set in a ciphertext can be changed using a re-encryption key without decrypting the ciphertext. Non-Patent Literature 1 describes a proxy re-encryption scheme in functional encryption. Non-Patent Literature 2 describes a proxy re-encryption scheme in attribute-based encryption.

CITATION LIST Patent Literature

Patent Literature 1: WO 2011/135895 A

Non-Patent Literature

Non-Patent Literature 1: Yutaka Kawai and Katuyuki Takashima, Fully-Anonymous Functional Proxy-Re-Encryption. Cryptology ePrint Archive: Report 2013/318

Non-Patent Literature 2: Junzuo Lai and Robert H. Deng and Yanjiang Yang and Jian Weng. “Adaptable Ciphertext-Policy Attribute-Based Encryption”

SUMMARY OF INVENTION Technical Problem

In the proxy re-encryption schemes described in Non-Patent Literature 1 and Non-Patent Literature 2, a re-encryption key is always required to change the decryption condition of the ciphertext.

In order to generate a re-encryption key, a user secret key or a master secret key, which is a key that needs to be held in secrecy, is required. In the proxy re-encryption schemes described in Non-Patent Literature 1 and Non-Patent Literature 2, the user secret key or the master secret key is accessed each time a re-encryption key is generated, resulting in an increase in the number of accesses to the user secret key or the master secret key.

It is an object of the present invention to allow a decryption condition of an original ciphertext to be restricted without using a re-encryption key.

Solution to Problem

A decryption condition addition device according to the present invention includes:

an original ciphertext acquisition part to acquire an original ciphertext in which a secret distribution matrix is set as information specifying a decryption condition;

a condition acquisition part to acquire a restriction condition to restrict the decryption condition of the original ciphertext acquired by the original ciphertext acquisition part; and

an updated ciphertext generation part to generate an updated ciphertext for which the decryption condition of the original ciphertext is restricted by adding a row and a column which are related to the restriction condition acquired by the condition acquisition part to the secret distribution matrix set in the original ciphertext.

Advantageous Effects of Invention

In the present invention, a decryption condition of an original ciphertext is restricted by adding a row and a column to a secret distribution matrix set in the ciphertext. No re-encryption key is required in order to add the row and the column to the secret distribution matrix. Therefore, it is not necessary to use a re-encryption key to restrict the decryption condition of the original ciphertext.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is an explanatory drawing of an access structure S used in functional encryption;

FIG. 2 is an explanatory drawing of a submatrix M_(δ);

FIG. 3 is an explanatory drawing of a secret value s₀ of secret distribution;

FIG. 4 is an explanatory drawing of distributed values s₁, . . . , s_(L) of secret distribution;

FIG. 5 is an explanatory drawing of an example of restricting a decryption condition of a ciphertext;

FIG. 6 is a configuration diagram of a cryptographic system 10 according to a first embodiment;

FIG. 7 is a configuration diagram of a key generation device 100 according to the first embodiment;

FIG. 8 is a configuration diagram of an encryption device 200 according to the first embodiment;

FIG. 9 is a configuration diagram of a decryption condition addition device 300 according to the first embodiment;

FIG. 10 is a configuration diagram of a decryption device 400 according to the first embodiment;

FIG. 11 is a flowchart of a Setup algorithm according to the first embodiment;

FIG. 12 is a flowchart of a KG algorithm according to the first embodiment;

FIG. 13 is a flowchart of an Enc algorithm according to the first embodiment;

FIG. 14 is a flowchart of an ApdAND algorithm according to the first embodiment;

FIG. 15 is an explanatory drawing of an additional access structure S⁺;

FIG. 16 is a flowchart of a Dec algorithm according to the first embodiment; and

FIG. 17 is a diagram illustrating an example of a hardware configuration of each device of the key generation device 100, the encryption device 200, the decryption condition addition device 300, and the decryption device 400 described in the first embodiment.

DESCRIPTION OF EMBODIMENTS First Embodiment

In a first embodiment, an example of applying a technique for restricting a decryption condition of a ciphertext to ciphertext-policy functional encryption will be described. Restricting the decryption condition of the ciphertext means reducing the number of keys that can decrypt the ciphertext.

***Description of Notations***

Notations to be used in the following description will be described.

When A is a random value or distribution, Formula 101 denotes that y is randomly selected from A according to the distribution of A. That is, y is a random number in Formula 101.

When A is a set, Formula 102 denotes that y is uniformly selected from A. That is, y is a uniform random number in Formula 102.

Formula 103 denotes that z is set to y, y is defined by z, or y is substituted by z.

y:=z   [Formula 103]

When a is a fixed value, Formula 104 denotes that a machine (algorithm) A outputs a on input x.

A(x)→a   [Formula 104]

For example,

A(x)→1

Formula 105 denotes a field of order q.

_(q)   [Formula 105]

Formula 106 denotes a vector representation in a finite field F_(q).

{right arrow over (x)} denotes (x₁, . . . , x_(n))∈

_(q) ^(n).   [Formula 106]

Formula 107 denotes the inner-product, indicated in Formula 109, of two vectors x{right arrow over ( )} and v{right arrow over ( )} indicated in Formula 108.

{right arrow over (x)}·{right arrow over (v)}  [Formula 107]

{right arrow over (x)}=(x ₁ , . . . , x _(n)),

{right arrow over (v)}=(v ₁ , . . . , v _(n))   [Formula 108]

Σ_(i=1) ^(n)x_(i)v_(i)   [Formula 109]

Note that X^(T) denotes the transpose of a matrix X.

For a basis B and a basis B* indicated in Formula 110, Formula 111 is established.

:=(b ₁ , . . . , b _(N)),

*:=(b ₁ ^(*) , . . . , b _(N) ^(*))   [Formula 110]

:=Σ_(i=1) ^(N)x_(i)b_(i),

:=Σ_(i=1) ^(N)y_(i)b_(i) ^(*)   [Formula 111]

Note that e{right arrow over ( )}_(j) denotes a normal basis vector indicated in Formula 112.

$\begin{matrix} {{{{{\overset{\rightarrow}{e}}_{j}\text{:}\mspace{14mu} \left( {\overset{\overset{j - 1}{}}{0\mspace{14mu} \ldots \mspace{14mu} 0},1,\overset{\overset{n - j}{}}{0\mspace{14mu} \ldots \mspace{14mu} 0}} \right)} \in {_{q}^{n}\mspace{14mu} {for}\mspace{14mu} j}} = 1},\ldots \mspace{14mu},n} & \left\lbrack {{Formula}\mspace{14mu} 112} \right\rbrack \end{matrix}$

***Description of Overview***

The basics of ciphertext-policy functional encryption will be described, and then an overview of the technique for restricting the decryption condition of the ciphertext will be described.

The basics of ciphertext-policy functional encryption will be described.

FIG. 1 is an explanatory drawing of an access structure S used in functional encryption.

In functional encryption, a combination of an L-row and r-column secret distribution matrix M and a label p given to each row of the secret distribution matrix M is used as an access structure S. The label ρ given to each row is related to one literal of positive literals {p₁, . . . , p_(n)} and negative literals {

p₁, . . . ,

p_(n)} which are given by a set of variables {p₁, . . . , p_(n)}.

For an input sequence δ=δ_(i) ∈ {0, 1} (i=1, . . . , n), a submatrix M_(δ) of the secret distribution matrix M is defined. The submatrix M_(δ) consists of those rows of the secret distribution matrix M the labels ρ of which are related to a value “1” by the input sequence δ. That is, the submatrix M_(δ) consists of the rows of the secret distribution matrix M which are related to p_(i) such that δ_(i)=1 and the rows of the secret distribution matrix M which are related to

p_(i) such that δ_(i)=0.

FIG. 2 is an explanatory drawing of the submatrix M_(δ).

In FIG. 2, note that n=7, L=6, and r=5. That is, the set of variables is {p₁, . . . , p₇}, and the matrix M has six rows and five columns. In FIG. 2, assume that the labels ρ are related such that ρ₁ is related to

p₂, ρ₂ to p₁, ρ₃ to p₄, ρ₄ to

p₅, ρ₅ to

p₃, and ρ₆ to p₅.

Assume that in the input sequence δ, δ₁=1, δ₂=0, δ₃=1, δ₄=0, δ₅=0, δ₆=1, and δ₇=1. In this case, the submatrix M_(δ) consists of the rows of the secret distribution matrix M which are related to literals (p₁, p₃, p₆, p₇,

p₂,

p₄,

p₅) surrounded by broken lines. That is, the submatrix M_(δ) consists of the first row (M₁), second row (M₂), and fourth row (M₄) of the secret distribution matrix M.

When [ρ(j)=p_(i)]

[δ_(i)=1] or [ρ(j)=

p_(i)]

[δ_(i)=0], then map γ(j)=1; otherwise map γ(j)=0. In this case, it can be represented as M_(δ):=(M_(j))_(γ(j)=1). Note that M_(j) is row j of the matrix M.

In functional encryption, each variable p of the set of variables in the access structure S is defined by a tuple (t, v{right arrow over ( )}_(i)) of an identifier t and a vector v{right arrow over ( )}_(i). When an attribute set Γ which is a tuple (t, x{right arrow over ( )}_(t)) of the identifier t and a vector x{right arrow over ( )}_(t) is given to the access structure S, the map γ(i) is defined such that when [ρ(i)=(t, v{right arrow over ( )}_(i))]

[(t, x{right arrow over ( )}_(t)) ∈ Γ]

[v{right arrow over ( )}_(i)·x{right arrow over ( )}_(t)=0] or [ρ(i)=

(t, v{right arrow over ( )}_(i))]

[(t, x{right arrow over ( )}_(t)) ∈ Γ]

[v{right arrow over ( )}_(i)·x{right arrow over ( )}_(t)≠0], then γ(j)=1; otherwise γ(j)=0.

That is, in functional encryption, the map γ(i) is computed based on the inner-product of the vector v{right arrow over ( )}_(i) and the vector x{right arrow over ( )}_(t). Then, as described above, which row of the secret distribution matrix M is included in the submatrix M_(δ) is decided by the map γ(i).

The access structure S accepts the attribute set Γ only if 1{right arrow over ( )} is obtained as a result of linear combination of the rows of the submatrix M_(δ). Note that 1{right arrow over ( )} is a row vector in which every element is 1.

For example, in the example of FIG. 2, the access structure S accepts the attribute set Γ only if 1{right arrow over ( )} is obtained as a result of linear combination of the rows of the submatrix M_(δ) consisting of the first, second, and fourth rows of the secret distribution matrix M. That is, the access structure S accepts the attribute set Γ if there exist coefficients α₁, α₂, and α₄ with which α₁(M₁)+α₂(M₂)+α₄(M₄)=1{right arrow over ( )}.

In other words, when the set of the row numbers of the secret distribution matrix included in the submatrix M_(δ) is defined as I, the access structure S accepts the attribute set Γ if there exists a coefficient α_(i) with which Σ_(i∈I)α_(i)M_(i)=1{right arrow over ( )}.

In ciphertext-policy functional encryption, a key element k^(*) _(t) in which a vector x{right arrow over ( )}_(t) is set is generated for the identifier t included in the attribute set Γ representing the attribute of the user. Then, a user secret key sk_(Γ) which includes the key element k^(*) _(t) for each identifier t included in the attribute set Γ and t=0 is generated.

The identifier t is related to an attribute category and an attribute in the attribute category related to the identifier t is set in the vector x{right arrow over ( )}_(t). The attribute category is a classification of attributes, such as belonging department, gender, and age. For example, when the identifier t is related to the belonging department, a value indicating the belonging department of the user of the user secret key sk₁ is set in the vector x{right arrow over ( )}_(t).

In ciphertext-policy functional encryption, a distributed value s_(i) of secret distribution is assigned to row i in the secret distribution matrix M of the access structure S for each integer i=1, . . . , L. Then, a cipher element c_(i) in which the assigned distributed value s_(i) and a vector v{right arrow over ( )}_(i) are set is generated for each row i of the secret distribution matrix M. A cipher element c₀ in which a secret value s₀ computed from the set of the distributed value s_(i) satisfying a condition is also generated. A cipher element c_(d+1) in which a message m is encrypted using a session key K is also generated. Then, an original ciphertext ct_(s) which includes the cipher element c_(i) for each integer i=0, L, d+1 and the access structure S is generated.

In ciphertext-policy functional encryption, a pairing operation is performed on the key element k^(*) _(t) for the identifier t included in the attribute set Γ and the cipher element c_(i) identified by the label ρ(i) having the identifier t. By performing the pairing operation, the inner-product of the vector v{right arrow over ( )}_(i) and the vector x{right arrow over ( )}_(t) is computed, and the map γ(i) is computed. Then, which row of the secret distribution matrix M is included in the submatrix M_(δ) is decided.

Then, if the access structure S accepts the attribute set Γ, the set of the distributed value s_(i) satisfying the condition is extracted and the secret value s₀ is computed. The session key K is generated from the key element k^(*) ₀, the cipher element c₀, and the secret value s₀. The message m is computed with the session key K.

FIG. 3 is an explanatory drawing of the secret value s₀ of secret distribution.

The secret value s₀ is a sum of elements of a product of a row vector having 1 in all of r elements and a column vector f having r elements f₁, . . . , f_(r). Note that each element of the column vector f is a uniform random number.

FIG. 4 is an explanatory drawing of the distributed values s₁, . . . , s_(L) of secret distribution.

The distributed values s₁, . . . , s_(L) are a product of the secret distribution matrix M and the column vector f. A column vector s{right arrow over ( )}^(T) is a vector whose elements are the distributed values s₁, . . . , s_(L).

As described above, if the access structure S accepts the attribute set Γ, there exists the coefficient α_(i) with which Σ_(i∈I)α_(i)M_(i)=1{right arrow over ( )}. The coefficient α_(i) can be computed in polynomial time in the size of the secret distribution matrix M. Then, when the coefficient α_(i) is used, Σ_(i∈I)α_(i)s_(i)=s₀ is obtained according to the definitions of the secret value s₀ and the distributed values s₁, . . . , s_(L).

An overview of the technique for restricting the decryption condition of the ciphertext will be described.

As described above, the original ciphertext ct_(s) includes the cipher element c₀ in which the secret value s₀ is set, the cipher element c_(i) for each integer i=1, . . . , L in which the distributed value s_(i) and the vector v{right arrow over ( )}_(i) are set, the cipher element c_(d+1) in which the message m is encrypted, and the access structure S.

Then, the decryption condition of the original ciphertext ct_(s) is specified by the secret distribution matrix M included in the access structure S and the cipher element c_(i) which is set for each row of the secret distribution matrix M.

In the first embodiment, the decryption condition of the original ciphertext ct_(s) is restricted by adding a row and a column to the secret distribution matrix M included in the original ciphertext ct_(s) and adding a cipher element c_(i) related to the added row.

FIG. 5 is an explanatory drawing of an example of restricting the decryption condition of the ciphertext.

In the original ciphertext ct_(s), (department=administration department) AND (section=personnel section) is set as the decryption condition.

In this case, the secret distribution matrix M has two rows and two columns, and the first row is related to the department and the second row is related to the section. Then, the label ρ(1) of the first row is related to a positive tuple (department:=t₁, administration department:=v{right arrow over ( )}₁), and the label ρ(2) of the second row is related to a positive tuple (section:=t₂, personnel section:=v{right arrow over ( )}₂).

The distributed value s₁ and administration department:=v{right arrow over ( )}₁ are set in the cipher element c₁ related to the first row of the secret distribution matrix M, and the distributed value s₂ and personnel section:=v{right arrow over ( )}₂ are set in the cipher element c₂ related to the second row.

Assume here, for example, that the user secret key sk_(Γ) of the user with ID=1001 needs to be invalidated. In this case, ID=1001 may be removed from the decryption condition. This can be realized by adding NOT (ID=1001) as an AND condition to the decryption condition of the original ciphertext ct_(s).

That is, the decryption condition may be set as (department=administration department) AND (section=personnel section) AND (NOT (ID=1001)).

Therefore, in an updated ciphertext ct_(s′) which is the updated original ciphertext ct_(s), the third row and the third column are added to the secret distribution matrix M, and the third row is related to the user ID. Then, the label ρ(3) of the third row is related to a negative tuple (ID:=t₃, 1001:=v{right arrow over ( )}₃).

The distributed value s₃ and 1001:=v{right arrow over ( )}₃ in negative form are set in the cipher element c₃ related to the third row of the secret distribution matrix M.

With this arrangement, the decryption condition can be set as (department=administration department) AND (section=personnel section) AND (NOT (ID=1001)).

***Description of Configuration***

FIG. 6 is a configuration diagram of a cryptographic system 10 according to the first embodiment.

The cryptographic system 10 has a key generation device 100, an encryption device 200, a decryption condition addition device 300, and a decryption device 400.

The key generation device 100 executes a Setup algorithm taking as input an attribute format n{right arrow over ( )} and a security parameter λ, and thereby generates a public key pk and a master secret key msk. The key generation device 100 also executes a KG algorithm taking as input the public key pk, the master secret key msk, and a user attribute set Γ, and thereby generates a user secret key sky.

Then, the key generation device 100 publishes the public key pk. The key generation device 100 outputs the user secret key sky to the decryption device 400 in secrecy.

The encryption device 200 executes an Enc algorithm taking as input the public key pk, an access structure S, and a message m, and thereby generates an original ciphertext ct_(s) in which the message m is encrypted and a secret distribution matrix M is set as information specifying a decryption condition. The encryption device 200 outputs the original ciphertext ct_(s) to the decryption condition addition device 300.

The decryption condition addition device 300 executes an ApdAND algorithm taking as input the public key pk, the original ciphertext ct_(s), and an additional access structure S⁺, and thereby generates an updated ciphertext ct_(s′) for which the decryption condition of the original ciphertext ct_(s) is restricted. If the updated ciphertext ct_(s′) has been generated, the decryption condition addition device 300 outputs the updated ciphertext ct_(s′) to the decryption device 400. If the updated ciphertext ct_(s′) has not been generated, the decryption condition addition device 300 outputs the original ciphertext ct_(s) to the decryption device 400.

Specifically, the decryption condition addition device 300 acquires the additional access structure S⁺ which is a restriction condition to restrict the decryption condition of the original ciphertext ct_(s) generated by the encryption device 200, and adds a row and a column which are related to the restriction condition to the secret distribution matrix M being set in the original ciphertext ct_(s), and thereby generates the updated ciphertext ct_(s′) for which the decryption condition of the original ciphertext ct_(s) is restricted.

The decryption device 400 executes a Dec algorithm taking as input the public key pk, the user secret key sk_(Γ), and the original ciphertext ct_(s) generated by the encryption device 200 or the updated ciphertext ct_(s′) generated by the decryption condition addition device 300, and thereby decrypts the original ciphertext ct_(s) generated by the encryption device 200 or the updated ciphertext ct_(s′) generated by the decryption condition addition device 300. The decryption device 400 outputs the message m or a symbol ⊥ indicating a decryption failure.

FIG. 7 is a configuration diagram of the key generation device 100 according to the first embodiment.

The key generation device 100 has an information acquisition part 110, a master key generation part 120, a user secret key generation part 130, and a key output part 140.

The information acquisition part 110 acquires an attribute format n{right arrow over ( )}, a security parameter λ, and an attribute set Γ which are input by an administrator of the cryptographic system 10. The master key generation part 120 generates a master secret key msk and a public key pk based on the attribute format n{right arrow over ( )} and the security parameter λ acquired by the information acquisition part 110. The user secret key generation part 130 generates a user secret key sk_(Γ) based on the attribute set Γ acquired by the information acquisition part 110 and the master secret key msk and the public key pk generated by the master key generation part 120. The key output part 140 outputs the public key pk to a server for publication or the like so as to publish the public key pk, and outputs in secrecy the user secret key sk_(Γ) to the decryption device 400 used by the user. Outputting in secrecy means, for example, transmitting after encrypting by an existing encryption scheme.

FIG. 8 is a configuration diagram of the encryption device 200 according to the first embodiment.

The encryption device 200 has an information acquisition part 210, a ciphertext generation part 220, and a ciphertext output part 230.

The information acquisition part 210 acquires the public key pk generated by the key generation device 100 as well as an access structure S and a message m which are input by the user of the encryption device 200. The ciphertext generation part 220 generates an original ciphertext ct_(s) in which the message m is encrypted based on the public key pk, the access structure S, and the message m acquired by the information acquisition part 210. The ciphertext output part 230 outputs the original ciphertext ct_(s) generated by the ciphertext generation part 220 to the decryption condition addition device 300.

FIG. 9 is a configuration diagram of the decryption condition addition device 300 according to the first embodiment.

The decryption condition addition device 300 has an information acquisition part 310, an updated ciphertext generation part 320, a ciphertext storage part 330, and a ciphertext output part 340.

The information acquisition part 310 has a public key acquisition part 311, an original ciphertext acquisition part 312, and a condition acquisition part 313.

The public key acquisition part 311 acquires the public key pk generated by the key generation device 100. The original ciphertext acquisition part 312 acquires the original ciphertext ct_(s) generated by the encryption device 200. The condition acquisition part 313 acquires an additional access structure S⁺ which is a restriction condition to restrict the decryption condition of the original ciphertext ct_(s).

The updated ciphertext generation part 320 generate an updated ciphertext ct_(s′) by restricting the decryption condition of the original ciphertext ct_(s) acquired by the original ciphertext acquisition part 312 with the additional access structure S⁺ acquired by the condition acquisition part 313, based on the public key pk acquired by the public key acquisition part 311.

The updated ciphertext generation part 320 has an access structure updating part 321, a distributed value generation part 322, an additional cipher element generation part 323, and a cipher element updating part 324.

The ciphertext storage part 330 is a storage device to store the original ciphertext ct_(s) acquired by the original ciphertext acquisition part 312. If the updated ciphertext generation part 320 has generated the updated ciphertext ct_(s′) from the original ciphertext ct_(s), the ciphertext storage part 330 deletes the original ciphertext ct_(s) and stores the updated ciphertext ct_(s′).

If requested by the decryption device 400, the ciphertext output part 340 outputs the original ciphertext ct_(s) or the updated ciphertext ct_(s′) stored in the ciphertext storage part 330 to the decryption device 400.

FIG. 10 is a configuration diagram of the decryption device 400 according to the first embodiment.

The decryption device 400 has an information acquisition part 410, a ciphertext determination part 420, a decryption part 430, and a result output part 440.

The information acquisition part 410 acquires the public key pk and the user secret key sk_(Γ) generated by the key generation device 100 and either one of the original ciphertext ct_(s) generated by the encryption device 200 and the updated ciphertext ct_(s′) generated by the decryption condition addition device 300. The ciphertext determination part 420 determines whether or not the ciphertext acquired by the information acquisition part 410 can be decrypted with the user secret key sk_(Γ). If the ciphertext determination part 420 has determined, based on the public key pk, that decryption is possible, the decryption part 430 decrypts the ciphertext acquired by the information acquisition part 410 with the user secret key sk₁. If the ciphertext determination part 420 has determined that decryption is possible, the result output part 440 outputs a result of decryption by the decryption part 430. If the ciphertext determination part 420 has determined that decryption is not possible, the result output part 440 outputs a symbol ⊥ indicating a decryption failure.

***Description of Operation***

FIG. 11 is a flowchart of the Setup algorithm according to the first embodiment.

The Setup algorithm is executed by the key generation device 100.

(S101: Information Acquisition Process)

The information acquisition part 110 acquires an attribute format n{right arrow over ( )}:=(d; n₁, . . . , n_(d)) and a security parameter λ which are input by the administrator or the like of the cryptographic system 10 with an input device.

(S102: Basis Generation Process)

The master key generation part 120 computes Formula 113 taking as input the attribute format n{right arrow over ( )} and the security parameter λ acquired in S101, and thereby generates a parameter param_(n) of dual pairing vector spaces, a basis B_(t) and a basis B^(*) _(t) for each integer t=0, . . . , d, and a value g_(Γ).

$\begin{matrix} {{{{_{ob}\left( {1^{\lambda},{\overset{\rightarrow}{n} = \left( {{d;n_{1}},\ldots \mspace{14mu},n_{d}} \right)}} \right)}\text{:}\mspace{14mu} {param}_{}}:={\left( {q,,_{T},g,e} \right)\overset{R}{\leftarrow}{_{bpg}\left( 1^{\lambda} \right)}}},\mspace{79mu} {N_{0}:=5},{N_{t}:={{3n_{t}} + 1}},\mspace{79mu} {\psi \overset{U}{\leftarrow}_{q}^{x}},{g_{T}:={e\left( {g,g} \right)}^{\psi}},\mspace{79mu} {{{for}\mspace{14mu} t} = 0},\ldots \mspace{14mu},d,{{param}_{_{t}}:={\left( {q,_{t},_{T},_{t},e} \right)\overset{R}{\leftarrow}{_{dpvs}\left( {1^{\lambda},N_{t},{param}_{}} \right)}}},{X_{t} = {\begin{pmatrix} {\overset{\rightarrow}{x}}_{t,1} \\ \vdots \\ {\overset{\rightarrow}{x}}_{t,N_{t}} \end{pmatrix}:={\left( x_{t,i,j} \right)_{i,j}\overset{U}{\leftarrow}{{GL}\left( {N_{t},_{q}} \right)}}}},{\begin{pmatrix} {\overset{\rightarrow}{v}}_{t,1} \\ \vdots \\ {\overset{\rightarrow}{v}}_{t,N_{t}} \end{pmatrix}:={\left( v_{t,i,j} \right)_{i,j}:={\psi \cdot \left( X_{t}^{T} \right)^{- 1}}}},\mspace{79mu} {b_{t,i}:={\sum\limits_{j = 1}^{N_{t}}\; {x_{t,i,j}a_{t,j}}}},{_{t}:=\left( {b_{t,1},\ldots \mspace{14mu},b_{t,N_{t}}} \right)},\mspace{85mu} {b_{t,i}^{*}:={\sum\limits_{j = 1}^{N_{t}}\; {v_{t,i,j}a_{t,j}}}},{_{t}^{*}:=\left( {b_{t,1}^{*},\ldots \mspace{14mu},b_{t,N_{t}}^{*}} \right)}, {{param}_{n}:=\left\{ {param}_{_{t}} \right\}_{{t = 0},\; \ldots \mspace{11mu},d}},\mspace{95mu} {{return}\mspace{14mu} {param}_{n}},g_{T},{\left\{ {_{t},_{t}^{*}} \right\}_{{t = 0},\; \ldots \mspace{11mu},d}.}} & \left\lbrack {{Formula}\mspace{14mu} 113} \right\rbrack \end{matrix}$

Note that in Formula 113, G_(bpg) is a function to generate a bilinear pairing group and G_(dpvs) is a function to generate dual pairing vector spaces.

(S103: Public Key Generation Process)

The master key generation part 120 generates a subbasis B̂₀ of the basis B₀ generated in S102 and a subbasis B̂_(t) for each integer t=1, . . . , d, as indicated in Formula 114.

0:=(b _(0,1) , b _(0,2) , b _(0,5)),

t:=(b _(t,1) , . . . , b _(t,n) _(t) , b _(t,N) _(t) ) for t=1, . . . , d   [Formula 114]

The master key generation part 120 generates a public key pk by putting together the subbasis B̂₀, the subbasis B̂_(t), the security parameter λ input in S101, and param_(n) generated in S101.

(S104: Master Secret Key Generation Process)

The master key generation part 120 generates a subbasis B̂^(*) ₀ of the basis B^(*) ₀ generated in S102 and a subbasis B̂^(*) _(t) for each integer t=1, . . . , d, as indicated in Formula 115.

₀ ^(*):=(b _(0,1) ^(*) , b _(0,2) ^(*) , b _(0,4) ^(*)),

_(t) ^(*):=(b _(t,1) ^(*) , . . . , b _(t,n) _(t) ^(*) , b _(t,2n) _(t) ^(*)+1, . . . , b _(t,3n) _(t) ^(*)) for t=1, . . . , d   [Formula 115]

The master key generation part 120 generates a master secret key msk constituted by the subbasis B̂^(*) ₀ and the subbasis B̂^(*) _(t).

(S105: Key Output Process)

The key output part 140 outputs the public key pk generated in S103 to the server for publication or the like so as to publish the public key pk.

FIG. 12 is a flowchart of the KG algorithm according to the first embodiment.

The KG algorithm is executed by the key generation device 100.

(S201: Information Acquisition Process)

The information acquisition part 110 acquires a user attribute set Γ which is input by the administrator or the like of the cryptographic system 10 with an input device.

The attribute set Γ is a tuple (t, x{right arrow over ( )}_(t)) of an identifier t and a vector x{right arrow over ( )}_(t). This identifier t is related to an attribute category, and an attribute in the attribute category related to the identifier t is set in the vector x{right arrow over ( )}_(t).

(S202: Random Number Generation Process)

The user secret key generation part 130 generates random numbers, as indicated in Formula 116.

(S203: Key Element Generation Step)

The user secret key generation part 130 generates a key element k^(*) ₀ and a key element k^(*) _(t) for each identifier t included in the attribute set Γ, based on the attribute set Γ acquired in S201 and the random numbers generated in S202, as indicated in Formula 117.

$\begin{matrix} {{k_{0}^{*}:=\left( {1,\delta,0,\phi_{0},0} \right)_{_{0}^{*}}},{k_{t}^{*}:={\left( {\overset{\overset{n_{t}}{}}{\delta_{{\overset{\rightarrow}{x}}_{t}},}\overset{\overset{n_{t}}{}}{0^{n_{t}},}\overset{\overset{n_{t}}{}}{{\overset{\rightarrow}{\phi}}_{t},}\overset{\overset{1}{}}{0}} \right)_{_{t}^{*}}\mspace{14mu} {for}\mspace{14mu} \left( {t,{\overset{\rightarrow}{x}}_{t}} \right)}},{\in \Gamma}} & \left\lbrack {{Formula}\mspace{14mu} 117} \right\rbrack \end{matrix}$

As indicated in Formula 117, a vector x{right arrow over ( )} indicating the attribute in the attribute category related to the identifier t is set in the key element k^(*) _(t) for each identifier t.

(S204: Key Output Process)

The key output part 140 outputs in secrecy a user secret key sk_(Γ) which includes the attribute set Γ acquired in S201 as well as the key element k^(*) ₀ and the key element k^(*) _(t) for each integer t included in the attribute set Γ generated in S203 to the decryption device 400 used by the user of the user secret key sk_(Γ).

FIG. 13 is a flowchart of the Enc algorithm according to the first embodiment.

The Enc algorithm is executed by the encryption device 200.

(S301: Information Acquisition Process)

The information acquisition part 210 acquires the public key pk generated by the key generation device 100 and an access structure S:=(M, ρ) and a message m which are input by the user of the encryption device 200 with an input device.

In the access structure S, the decryption condition of the original ciphertext ct_(s) is set with the secret distribution matrix M and the label ρ.

(S302: Distributed Value Generation Process)

The ciphertext generation part 220 generates a secret value s₀ and a distributed value s{right arrow over ( )}^(T), as indicated in Formula 118.

(S303: Random Number Generation Process)

The ciphertext generation part 220 generates random numbers, as indicated in Formula 119.

(S304: Cipher Element Generation Process)

The ciphertext generation part 220 generates a cipher element c_(i) for each integer i=0, . . . , L, d+1, as indicated in Formula 120.

$\begin{matrix} {\mspace{79mu} {{c_{0}:=\left( {\zeta,{- s_{0}},0,0,\eta_{0}} \right)_{_{0}}},\mspace{79mu} {{{for}\mspace{14mu} i} = 1},\ldots \mspace{14mu},L,\text{}{{{if}\mspace{14mu} {\rho (i)}} = \left( {t,{\overset{\rightarrow}{v}}_{i}} \right)},{c_{i}:=\left( {\overset{\overset{n_{t}}{}}{{{s_{i}{\overset{\rightarrow}{e}}_{t,1}} + {\theta_{i}{\overset{\rightarrow}{v}}_{t}}},}\overset{\overset{n_{t}}{}}{0^{n_{t}},}\overset{\overset{n_{t}}{}}{0^{n_{t}},}\overset{\overset{1}{}}{\eta_{i}}} \right)_{_{t}}},\mspace{79mu} {{{if}\mspace{14mu} \rho (i)} = \left( {t,{\overset{\rightarrow}{v}}_{i}} \right)},{c_{i}:=\left( {\overset{\overset{n_{t}}{}}{{s_{i}{\overset{\rightarrow}{v}}_{t}},}\overset{\overset{n_{t}}{}}{0^{n_{t}},}\overset{\overset{n_{t}}{}}{0^{n_{t}},}\overset{\overset{1}{}}{\eta_{i}}} \right)_{_{t}}},\mspace{79mu} {c_{d + 1}:={m \cdot g_{T}^{\zeta}}}}} & \left\lbrack {{Formula}\mspace{14mu} 120} \right\rbrack \end{matrix}$

As indicated in Formula 120, the secret value s₀ is set in the cipher element c₀. The distributed value s_(i) and a vector v{right arrow over ( )}_(i) are set in the cipher element c_(i) for each integer i=1, . . . , L. How a value is set in the cipher element c_(i) varies depending on whether the label ρ(i) is related to positive (t, v{right arrow over ( )}_(i)) or related to negative

(t, v{right arrow over ( )}_(i)). In the cipher element c_(d+1), the message m is encrypted with the session key K.

(S305: Ciphertext Output Process)

The ciphertext output part 230 outputs an original ciphertext ct_(s) which includes the access structure S acquired in S301 and the cipher element c_(i) for each integer i=0, . . . , L, d+1 generated in S304 to the decryption condition addition device 300.

FIG. 14 is a flowchart of the ApdAND algorithm according to the first embodiment.

The ApdAND algorithm is executed by the decryption condition addition device 300.

(S401: Public Key Acquisition Process)

The public key acquisition part 311 acquires the public key pk generated by the key generation device 100.

(S402: Original Ciphertext Acquisition Process)

The original ciphertext acquisition part 312 acquires the original ciphertext ct_(s) generated by the encryption device 200. As described above, in the original ciphertext ct_(s), the access structure S which includes the secret distribution matrix M and the label ρ is set as the information specifying the decryption condition. In the original ciphertext ct_(s), the cipher element c_(i) indicating an attribute is also set for each row of the secret distribution matrix M, as the information specifying the decryption condition, in addition to the access structure S which includes the secret distribution matrix M and the label ρ.

The acquired original ciphertext ct_(s) is stored in the ciphertext storage part 330.

(S403: Condition Acquisition Process)

The condition acquisition part 313 acquires an additional access structure S⁺ which is a restriction condition to restrict the decryption condition of the original ciphertext ct_(s) acquired by the original ciphertext acquisition part 312.

The additional access structure S⁺ includes an additional matrix M⁺ in which values are set only in elements of the row and column to be added to the secret distribution matrix M included in the access structure S and includes the label ρ(L+i) given to the added row.

FIG. 15 is an explanatory drawing of the additional access structure S.

FIG. 15 illustrates a case where rows L+1 to L+p and columns r+1 to r+p are added.

In the additional matrix M⁺, an element at row L+i and column r+i for each integer i=1, . . . , p is 1 and other elements are 0.

For each integer i=1, . . . , p, the label ρ(L+i) is given to row L+i. The label ρ(L+i) is related to one of literals ((t, v{right arrow over ( )}_(L+i)), (t′, v{right arrow over ( )}_(L+i)), . . . ,

(t, v{right arrow over ( )}_(L+i)), and

(t′, v{right arrow over ( )}_(L+i)), . . . ). That is, each label ρ(L+i) is related to a tuple of the identifier t indicating an attribute category and the vector v{right arrow over ( )}_(L+i) representing an attribute in the attribute category indicated by the identifier t.

A case will be described here, where the updated ciphertext generation part 320 adds one row and one column for one restriction condition, and then arranges the elements of the added row such that elements other than an element at the added column are 0, and arranges the elements of the added column such that elements other than an element at the added row are 0. Specifically, as illustrated in FIG. 15, a case will be described, where when adding rows L+1 to L+p and columns r+1 to r+p, where L, r, and p are positive integers, the updated ciphertext generation part 320 arranges the elements of the added row and column such that the element at row L+i and column r+i for each integer i=1, . . . . , p is 1 and other elements are 0.

However, the number of rows to be added and the number of columns to be added are set according to the design of the access structure, and may be other than one for one restriction condition. Similarly, the values assigned to the elements of the added row and column are to be set according to the design of the access structure, and may be decided arbitrarily according to the design of the access structure.

In the additional matrix M⁻ in the additional access structure S⁺, only the number p of rows and columns to be added may be set, and the values of the elements of the added row and column may not need to be set. This is because 1 is set in the element at row L+i and column r+i for each integer i=1, . . . , p and 0 is set in other elements, so that it is sufficient that the number p of rows and columns to be added be known.

(S404: Access Structure Updating Process)

The access structure updating part 321 adds row L+i and column r+i for each integer i=1, . . . , p, indicated in the additional matrix M⁺ of the additional access structure S⁺ acquired in S403, to the secret distribution matrix M of the access structure

S included in the original ciphertext ct_(s) acquired in S402, and thereby generates a secret distribution matrix M′. The access structure updating part 321 also gives the label ρ(L+i) of the additional access structure S⁺ to the added row L+i for each integer i=1, . . . , p of the secret distribution matrix M′.

In this way, the access structure updating part 321 updates the access structure S:=(M, ρ) to the access structure S′:=(M′, ρ′).

(S405: Distributed Value Generation Process)

The distributed value generation part 322 generates a distributed value s_(i) for each integer i=L+1, . . . , L+p, as indicated in Formula 121.

(S406: Additional Cipher Element Generation Process)

The additional cipher element generation part 323 generates an additional cipher element c_(i) for each integer i=L+1, . . . , L+p, based on the public key pk acquired in S401 and the distributed value s_(L+i) generated in S405, as indicated in Formula 122.

(S407: Cipher Element Updating Process)

The cipher element updating part 324 updates the cipher element c₀ included in the original ciphertext ct_(s) acquired in S402, based on the public key pk acquired in S401 and the distributed value s_(L+i) of the additional access structure S⁺ acquired in S403, as indicated in Formula 123.

c ₀ :=c ₀+(0, −Σ_(i=L+1) ^(L+p)s_(i), 0, 0, 0)

₀   [Formula 123]

As indicated in Formula 123, by updating the cipher element c₀, the secret value s₀ is updated with the added distributed value s_(L+i).

The distributed value s_(L+i) for each integer i=1, . . . , p is added to the secret value s₀ here. However, the method for updating the secret value s₀ depends on the structure of the secret distribution matrix M′. Since it is arranged here that the element at row L+i and column r+i for each integer i=1, . . . , p is 1 and other elements are 0 in the additional matrix M⁺, consistency is achieved by adding the distributed value s_(L+i) for each integer i=1, . . . , p to the secret value s₀.

(S408: Ciphertext Updating Process)

The ciphertext storage part 330 stores an updated ciphertext ct_(s′) which includes the access structure S′ updated in S404, the cipher element c_(i) for each integer i=1, . . . , L included in the original ciphertext ct_(s) acquired in S402, the additional cipher element c_(L+i) for each integer i=1, . . . , p generated in S406, and the cipher element c₀ updated in S407, by overwriting the original ciphertext ct_(s).

If requested by the decryption device 400, the ciphertext output part 340 outputs the original ciphertext ct_(s) or the updated ciphertext ct_(s′) stored by the ciphertext storage part 330 to the decryption device 400.

The process from S404 to S408 will be collectively referred to as an updated ciphertext generation process.

In the updated ciphertext generation process, the updated ciphertext generation part 320 adds each row and column related to each restriction condition acquired by the condition acquisition process to the secret distribution matrix M set in the original ciphertext ct_(s) acquired by the original ciphertext acquisition process. Then, the updated ciphertext generation part 320 additionally sets, for each added row, the cipher element c_(i) which is related to an attribute category and in which an attribute in the attribute category is set, and thereby generates the updated ciphertext ct_(s′) for which the decryption condition of the original ciphertext ct_(s) is restricted.

FIG. 16 is a flowchart of the Dec algorithm according to the first embodiment.

The Dec algorithm is executed by the decryption device 400.

(S501: Information Acquisition Process)

The information acquisition part 410 acquires the public key pk and the user secret key sk_(Γ) generated by the key generation device 100.

The information acquisition part 410 outputs a request to the decryption condition addition device 300, and acquires a ciphertext ct_(ŝ) from the decryption condition addition device 300. The ciphertext ct_(ŝ) is the original ciphertext ct_(s) or the updated ciphertext ct_(s′). It is assumed here that the ciphertext ct_(ŝ) includes an access structure Ŝ and a cipher element c_(i) for each integer i=1, . . . , L′, d+1.

(S502: Ciphertext Determination Process)

The ciphertext determination part 420 determines whether or not the access structure Ŝ included in the ciphertext ct_(ŝ) acquired in S501 accepts the attribute set Γ included in the user secret key sk_(Γ) acquired in S501.

If the ciphertext determination part 420 determines acceptance, the ciphertext determination part 420 advances the process to S503. If the ciphertext determination part 420 determines non-acceptance, the ciphertext determination part 420 advances the process to S506.

(S503: Interpolation Coefficient Computation Process)

The decryption part 430 computes a set I of row numbers and a complementary coefficient {α_(i)}_(i⊂I) such as indicated in Formula 124.

$\begin{matrix} {\mspace{79mu} {{\overset{\rightarrow}{1} = {\sum\limits_{i \in I}\; {\alpha_{i}M_{i}}}}\mspace{79mu} {{{where}\mspace{14mu} M_{i}\mspace{14mu} {is}\mspace{14mu} {the}\mspace{14mu} i\text{-}{th}\mspace{14mu} {row}\mspace{14mu} {of}\mspace{14mu} M},{{{and}\mspace{14mu} I} \subseteq \left\{ {{i \in \left\{ {1,\ldots \mspace{14mu},L} \right\}}{\left\lbrack {{\rho (i)} = {{{\left( {t,{\overset{\rightarrow}{v}}_{i}} \right)\bigwedge\left( {t,{\overset{\rightarrow}{x}}_{t}} \right)} \in {{\Gamma\bigwedge{\overset{\rightarrow}{v}}_{i}} \cdot {\overset{\rightarrow}{x}}_{t}}} = 0}} \right\rbrack\bigvee\left. \quad\left\lbrack {{\rho (i)} = {{{\left( {t,{\overset{\rightarrow}{v}}_{i}} \right)\bigwedge\left( {t,{\overset{\rightarrow}{x}}_{t}} \right)}} \in {{{\Gamma\bigwedge{\overset{\rightarrow}{v}}_{i}} \cdot {\overset{\rightarrow}{x}}_{t}} \neq 0}}} \right\rbrack \right\}}} \right.}}}} & \left\lbrack {{Formula}\mspace{14mu} 124} \right\rbrack \end{matrix}$

(S504: Session Key Computation Process)

The decryption part 430 computes Formula 125 based on the ciphertext ct_(ŝ) and the user secret key sk_(Γ) acquired in S501 and the set I and the complementary coefficient {α_(i)}_(i∈I) computed in S503, and thereby computes a session key K.

$\begin{matrix} {K:={{e\left( {c_{0},k_{0}^{*}} \right)} \cdot {\prod\limits_{{i \in {I\bigwedge{\rho {(i)}}}} = {({t,{\overset{\rightarrow}{v}}_{i}})}}\; {{e\left( {c_{i},k_{t}^{*}} \right)}{\alpha_{i} \cdot {\prod\limits_{{i \in {I\bigwedge{\rho {(i)}}}} = {{({t,{\overset{\rightarrow}{v}}_{i}})}}}\; {{e\left( {c_{i},k_{i}^{*}} \right)}{\alpha_{i}/\left( {{\overset{\rightarrow}{v}}_{i} \cdot {\overset{\rightarrow}{x}}_{i}} \right)}}}}}}}} & \left\lbrack {{Formula}\mspace{14mu} 125} \right\rbrack \end{matrix}$

(S505: Message Computation Process)

The decryption part 430 divides the cipher element c_(d+1) included in the ciphertext ct_(ŝ) by the session key K computed in S504, and thereby computes the message m.

(S506: Result Output Process)

If acceptance is determined in S502, the result output part 440 outputs the message m computed in S505. If non-acceptance is determined in S502, the result output part 440 outputs a symbol ⊥ indicating a decryption failure.

***Description of Effects***

As described above, in the cryptographic system 10 according to the first embodiment, the decryption condition can be restricted by adding information to the access structure S included in the original ciphertext ct_(s) and also adding the cipher element c_(i).

Adding information to the access structure S and adding the cipher element c_(i) can be implemented with only the ciphertext ct_(s) and the public key pk, and a special key such as a re-encryption key is not required. Therefore, it is not necessary to use a re-encryption key to restrict the decryption condition of the original ciphertext ct_(s).

When a particular user secret key is invalidated, for example, the decryption condition needs to be restricted promptly. In the cryptographic system 10 according to the first embodiment, the decryption condition can be restricted without generating a re-encryption key, so that the decryption condition can be restricted promptly.

In the above description, it has been described that the decryption condition of the original ciphertext ct_(s) is restricted in the ApdAND algorithm. In the ApdAND algorithm, however, it is also possible to further restrict the decryption condition of the updated ciphertext ct_(s′). In this case, the updated ciphertext ct_(s′) may be acquired in S402, in place of the original ciphertext ct_(s).

In the above description, the example of applying the technique for restricting the decryption condition of the ciphertext to ciphertext-policy functional encryption has been described. Ciphertext-policy attribute-based encryption also uses a secret distribution matrix. Therefore, the technique for restricting the decryption condition of the ciphertext by adding a row and a column to the secret distribution matrix, as described above, can also be applied to ciphertext-policy attribute-based encryption.

FIG. 17 is a diagram illustrating an example of a hardware configuration of each device of the key generation device 100, the encryption device 200, the decryption condition addition device 300, and the decryption device 400 described in the first embodiment.

Each device is a computer. Each element of each device can be implemented by a program so as to constitute a data display program.

As the hardware configuration of each device, an arithmetic device 901, an external storage device 902, a main storage device 903, a communication device 904, and an input/output device 905 are connected to a bus.

The arithmetic device 901 is a CPU (Central Processing Unit) and the like to execute programs. The external storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, a hard disk device, and the like. The main storage device 903 is, for example, a RAM (Random Access Memory) and the like. The communication device 904 is, for example, a communication board and the like. The input/output device 905 is, for example, a mouse, a keyboard, a display device, and the like.

The programs are normally stored in the external storage device 902, and are loaded into the main storage device 903 to be sequentially read and executed by the arithmetic device 901.

The programs are those that implement the functions each described as the “ . . . part”.

Further, the external storage device 902 stores an operating system (OS), and at least part of the OS is loaded into the main storage device 903. The arithmetic device 901 executes the above programs while executing the OS.

Information and the like described as being acquired, generated, output, and so on by the “ . . . part” in the description of the first embodiment are stored in the main storage device 903 as files.

REFERENCE SIGNS LIST

10: cryptographic system; 100: key generation device; 110: information acquisition part; 120: master key generation part; 130: user secret key generation part; 140: key output part; 200: encryption device; 210: information acquisition part; 220: ciphertext generation part; 230: ciphertext output part; 300: decryption condition addition device; 310: information acquisition part; 311: public key acquisition part; 312: original ciphertext acquisition part; 313: condition acquisition part; 320: updated ciphertext generation part; 321: access structure updating part, 322: distributed value generation part; 323: additional cipher element generation part; 324: cipher element updating part; 330: ciphertext storage part; 340: ciphertext output part; 400: decryption device; 410: information acquisition part; 420: ciphertext determination part; 430: decryption part; 440: result output part; A: canonical basis; B, B^(*): basis; B̂, B^(*)̂: subbasis; msk: master secret key; pk: public key; Γ: attribute set; M: secret distribution matrix; ρ: label; S, S′: access structure; S⁺: additional access structure; m: message; sk_(Γ): user secret key; ct_(s): original ciphertext; ct_(s′): updated ciphertext; t: identifier; k^(*) _(t): key element; c_(i): cipher element; s: distributed value 

1. A decryption condition addition device comprising: processing circuitry to: acquire an original ciphertext in which a secret distribution matrix is set as information specifying a decryption condition; restrict the decryption condition of the original ciphertext acquired; and generate an updated ciphertext for which the decryption condition of the original ciphertext is restricted by adding a row and a column which are related to the restriction condition acquired to the secret distribution matrix set in the original ciphertext.
 2. The decryption condition addition device according to claim 1, wherein the processing circuitry arranges elements of the added row such that an element other than an element at the added column is 0, and arranges elements of the added column such that an element other than an element at the added row is
 0. 3. The decryption condition addition device according to claim 2, wherein the processing circuitry adds one row and one column for one restriction condition.
 4. The decryption condition addition device according to claim 3, wherein when the processing circuitry adds rows L+1 to L+p and columns r+1 to r+p to the secret distribution matrix with L rows and r columns, where L, r, and p are positive integers, the processing circuitry arranges elements of the added rows and columns such that an element at row L+i and column r+i for each integer i=1, . . . , p is 1 and other elements are
 0. 5. The decryption condition addition device according to claim 1, wherein in the original ciphertext, a cipher element indicating an attribute is set for each row of the secret distribution matrix as the information specifying the decryption condition, in addition to the secret distribution matrix, wherein the processing circuitry acquires an attribute category and an attribute in the attribute category as the restriction condition, and generates the updated ciphertext by additionally setting a cipher element to the original ciphertext, the cipher element being related to the attribute category acquired, and the attribute in the attribute category being set in the cipher element.
 6. A cryptographic system comprising: an encryption circuit to generate an original ciphertext in which a secret distribution matrix is set as information specifying a decryption condition; a decryption condition addition circuit to acquire a restriction condition to restrict the decryption condition of the original ciphertext generated by the encryption circuit, and generate an updated ciphertext for which the decryption condition of the original ciphertext is restricted by adding a row and a column which are related to the restriction condition to the secret distribution matrix set in the original ciphertext; and a decryption circuit to decrypt the updated ciphertext generated by the decryption condition addition device.
 7. A non-transitory computer readable medium storing a decryption condition addition program for causing a computer to execute: an original ciphertext acquisition process to acquire an original ciphertext in which a secret distribution matrix is set as information specifying a decryption condition; a condition acquisition process to acquire a restriction condition to restrict the decryption condition of the original ciphertext acquired by the original ciphertext acquisition process; and an updated ciphertext generation process to generate an updated ciphertext for which the decryption condition of the original ciphertext is restricted by adding a row and a column which are related to the restriction condition acquired by the condition acquisition process to the secret distribution matrix set in the original ciphertext. 